Computing Device and System for Rendering Contact Information That is Retrieved from a Network Service

ABSTRACT

A contact information system provides an independent network authority for providing contact information in connection with incoming calls or messages. The contact information system utilizes a database of communication identifiers to provide contact information for end user devices that receive incoming communications which specify communication identifiers that are stored in the database.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.15/295,994, filed Oct. 17, 2016; which claims benefit of priority toProvisional U.S. Patent Application No. 62/242,851, filed on Oct. 16,2015; the aforementioned priority applications being hereby incorporatedby reference in their respective entirety for all purposes.

BACKGROUND

Caller identification, or “caller id” is a telephonic service that hasbeen present for a number of years. Prior to network-enabled telephonicdevices, such services used the Public Switch Telephone Network (“PSTN”)to deliver the caller information at the time the call was received.With the advance of mobile telephony devices in particular, callerinformation has increasingly been displayed via locally stored contactinformation.

Conventional approaches also exist where the caller information isinserted as additional data accompanying an incoming call at a networknode associated with the receiving device. For example, cellularcarriers and service providers have previously inserted callerinformation into the data stream of an incoming call.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a computing device and system for rendering callerinformation from an authoritative caller information service, accordingto one or more examples.

FIG. 2A illustrates an example method for providing a contactinformation service, according to one or more examples.

FIG. 2B illustrates an example method for implementing a contactinformation service on a distributed computing environment of an enduser.

FIG. 3A through FIG. 3C illustrate variations of a phone applicationinterface for displaying caller information provided from a callerinformation system, according to one or more examples.

FIG. 4 illustrates an example message interface for displaying sendercontact information provided from a contact information system,according to one or more examples.

FIG. 5 illustrates a computer system on which a caller informationsystem may be implemented.

DETAILED DESCRIPTION

Examples described include a computing device that operates to perform aretrieval process in which an operating system component retrievescontact information associated with an incoming communication. Accordingto some examples, the incoming communication may specify a phone numberas a communication identifier. By way of further example, the incomingcommunication may correspond to an incoming call connect, MultimediaMessage Service message (MMS) Short Message Service message (SMS),communicated over one or more of a public, cellular network or InternetProtocol (“IP”) communication medium.

Still further, in some examples, a contact information system isprovided to provide an independent network authority for contactinformation. The system may include one or more computers that utilize adatabase of phone numbers in providing contact information to end userdevices that receive incoming communications which utilize phone numbersstored in the database.

According to some examples, one or more computers implement anindependent network authority by providing a contact party interface toenable a plurality of entities that are each an authorized user of acorresponding phone number, to specify contact information to render onend user devices when end user devices receive incoming communicationsfrom that entity's phone number. The one or more computers furtherimplement the network authority by fielding retrieval requests from aplurality of end user devices, in which each of the plurality of enduser devices generate a retrieval request that specifies a phone numberof an incoming communication received on that device. For each retrievalrequest, the one or more computers identify, from the database, contactinformation associated with the phone number of the retrieval request.The one or more computers transmit the contact information to the enduser device that generated the retrieval request.

According to some examples, a computing device is enabled to use anetwork communication medium, separate from a telephony network and/orchannel on which the incoming call is received (“PSTN” or cellular voicechannel), in order to retrieve caller information (e.g., “Caller ID”)from an independent authority where such information is stored andvalidated.

Among other benefits, contact information can be rendered on a computingdevice, in connection with an incoming communication (e.g., incomingcall, incoming, new SMS message or new MMS message) subject to rulesand/or legal requirements of the independent network authority wheresuch information is stored. In this respect, information for a contactthat initiates the communication can be ensured as being valid andauthentic, in that the information rendered on the computing deviceoriginates from the network authority.

In some variations, a computing device is enabled to retrieve sendercontact information from an independent network authority, to render inconnection with a newly received message. The sender contact informationmay be trusted as identifying the sender, as it is provided from theindependent network authority. The newly received message may correspondto a message communicated under, for example, a Short Message Service(“SMS”), Multimedia Media Message (“MMS”), or message communicated usingan alternative messaging transport. The computing device may retrieveand render the contact information to display as part of the messageheader when the message is listed as an item in a messaging box orfolder of the computing device. As an addition or alternative, thesender contact information may be displayed with a rendered a portion ofthe message in an open state.

As described with various examples, the network authority can implementa caller and/or sender contact information service that (i) enables theservice to access and use validated information about entities whom areassociated with phone numbers or other communication identifiers, and(ii) complies with rules and/or laws that ensure the contact informationprovided through the service is valid and authentic.

In some examples, the contact information service implemented throughthe network service can operate in connection with operating systemlevel functionality of computing devices which receive incoming calls.In this regard, some examples include a contact information platform foruse with devices that receive incoming calls and messages. In somevariations, the contact information platform may include or operate witha network retrieval component that is implement as an operating systemlevel component of a computing device. In other variations, the networkretrieval component may be implemented as an application or applicationlevel component. On a computing device, the network retrieval componentperforms a network retrieval function to access the contact informationservice when an incoming call or message is received.

When implemented as an operating system level component, the networkretrieval component can provide additional security to prevent, forexample, other third-party providers (e.g., cellular carries) fromcircumventing the independent network authority, while providing asimilar service. Thus, for example, a caller may not be able to avoidhaving its caller information displayed on a computing device when thecaller initiates a phone call using an associated phone number.Depending on implementation, the caller contact information (or sendercontact information) can identify the caller (or sender) name (e.g.,corporation, individual, organization), caller contact information(e.g., phone number being used for call or message, alternative phonenumber, email address or messaging handle), or caller/sender contactcategory (e.g., “solicitation”, “important” “residential” etc.). Stillfurther, the caller or sender contact information can be rich, such asprovided through formatted text data, image, and other media. In somevariations, the caller or sender contact information can also include,or be transformed on the receiver device, to include functional dataitems that trigger automated and/or programmatic actions.

According to some examples, a computing device can be configured withoperating system level functionality to cause the computing device toaccess the network authority when an incoming call is received. Invariations, the computing device can perform a multi-step retrievalprocess which includes first checking a local or trusted user-specificdata store (e.g., contact records stored on device) in order todetermine whether caller information exists for the incoming call. If nocaller information exists, then the mobile computing device performs, aspart of the retrieval process, a network retrieval to access the callerinformation from the network authority.

A platform as described, which includes the operating system levelfunctionality which enables the network retrieval, can be optimized orotherwise configured to minimize latency and network retrieval time, inorder to ensure a caller or sender contact information is timelydisplayed (e.g., before the time the user is likely to notice or respondto the incoming call). In variations, a computing device can perform thenetwork retrieval asynchronously so as to populate, for example, (i) acall log with caller contact information from the network authorityafter a call has been answered or passed through to voicemail, or (ii)an entry of a messaging folder, representing a messaging itemtransmitted by a sender, with sender contact information provided fromthe network authority.

According to some examples, a computing device includes an operatingsystem that includes functionality for performing a retrieval process toa caller or sender contact information service operated by a networkauthority. The caller or sender information service may provide trusted(e.g., valid and authentic) caller or sender contact information. Insome examples, the computing device operates to retrieve caller contactinformation for an incoming call from the caller information service.

In some examples, the inclusion of operating system level functionalitycan specialize a computing device on which a retrieval for caller/sendercontact information is performed automatically in connection with anincoming call or newly received message. Among other benefits, suchoperating system level functionality can be implemented without anability of third-parties to deviate from the implemented functionality.While some variations provide for a user to specify settings as to theperformance of functionality as described (e.g., whether callerinformation retrieval is “on” or “off”), examples may be implemented topreclude other parties (e.g., carrier, caller, user) from altering thefunctionality implemented at the operating system level. For example,when the network retrieval is performed in connection with an incomingcall, examples provide that the computing device uses a networkconnection to access the network authority, and no other third-partysource, in order to determine the caller information for the incomingcall. Likewise, in some examples, caller information originating from asource other than network authority, or in some variations, the localresources of the user, may be suppressed or otherwise precluded frombeing rendered as being inauthentic.

One or more aspects described herein provide that methods, techniquesand actions performed by a computing device are performedprogrammatically, or as a computer-implemented method. Programmaticallymeans through the use of code, or computer-executable instructions. Aprogrammatically performed step may or may not be automatic.

One or more aspects described herein may be implemented usingprogrammatic modules or components. A programmatic module or componentmay include a program, a subroutine, a portion of a program, a softwarecomponent, or a hardware component capable of performing one or morestated tasks or functions. In addition, a module or component can existon a hardware component independently of other modules or components.Alternatively, a module or component can be a shared element or processof other modules, programs or machines.

Furthermore, one or more aspects described herein may be implementedthrough the use of instructions that are executable by one or moreprocessors. These instructions may be carried on a computer-readablemedium. Machines shown or described with figures below provide examplesof processing resources and computer-readable mediums on whichinstructions for implementing some aspects can be carried and/orexecuted. In particular, the numerous machines shown in some examplesinclude processor(s) and various forms of memory for holding data andinstructions. Examples of computer-readable mediums include permanentmemory storage devices, such as hard drives on personal computers orservers. Other examples of computer storage mediums include portablestorage units, such as CD or DVD units, flash or solid state memory(such as carried on many cell phones and consumer electronic devices)and magnetic memory. Computers, terminals, network enabled devices(e.g., mobile devices such as cell phones) are all examples of machinesand devices that utilize processors, memory, and instructions stored oncomputer-readable mediums. Additionally, aspects may be implemented inthe form of computer programs.

System Overview

FIG. 1 illustrates a computing device and system for rendering caller orsender contact information (collectively or alternatively “contactinformation”) from a trusted and authoritative contact informationservice, according to one or more examples. According to an example ofFIG. 1, a contact information system 10 includes a computing device 100and an authoritative contact information system 150. The computingdevice 100 can correspond to a mobile computing device which includeswireless broadband and cellular connectivity for enabling voice and datanetwork functionality. According to some examples, the computing device100 can correspond to any device which can receive incoming phone callsand execute functionality to retrieve caller contact information from anindependent network authority. According to other examples, thecomputing device 100 can correspond to any device which can receivemessages, such as SMS messages, and execute functionality to retrievesender contact information from an independent network authority. Stillfurther, in some examples, the computing device 100 can retrieve bothcaller and sender contact information from the independent networkauthority, in connection with phone and messaging services provided onthat computing device. By way of example, the computing device 100 caninclude a mobile computing device having capabilities for receiving andinitiating phone calls over a cellular connection (e.g., voice channel),PSTN connection and/or IP connection. In some variations, the computingdevice 100 can include a mobile computing device having capabilities forreceiving messages (e.g., SMS messages) over a cellular or IP networkchannel. Such mobile computing devices may also perform other types ofoperations, such as data network operations (e.g., Internet browsing)using a Wireless Fidelity (e.g., 802.11(a), 802.11(b), 802.11(g),802.11(n), Wi-Fi Direct, etc.) or cellular connection. In variations,the computing device 100 can be implemented under alternative computingplatforms, such as either a personal computer (e.g., desktop or laptopcomputer), a dedicated telephony device with data network connectivity,or a cable box or service with Voice-Over Internet Protocol (“VOIP”)telephony.

The contact information system 150 can be implemented through anauthoritative provider in order to provide a secure and trusted databaseservice for computing devices on which telephony and/or messagingoperations are performed. When implemented in connection with telephonyservices, the contact information system 150 provides independent andtrusted caller contact information to the computing device 10 when thecomputing device 10 receives incoming calls. When implemented inconnection with messaging services, the contact information system 150provides independent and trusted sender contact information to thecomputing device 10 when the computing device receives a new message.According to one aspect, the contact information system 150 canrepresent a platform and carrier independent service that is implementedunder rules which subjugate the providers of hardware resources (e.g.,device manufacturer), software resources (e.g., operating softwaremanufacturer), and network services (e.g., cellular provider) withrespect to specific aspects of telephony services (e.g., voiceconnections made through the PSTN), and specifically with respect tobehavior of the phone application when an incoming phone call isreceived. As described in greater detail, the contact information system150 can provide a secure network communication source for providingcaller or sender contact information over a data network connection. Inthis way, a receiving device is able to display caller contactinformation for an incoming call from a trusted and authoritativesource. As an addition or variation, the receiving device is able todisplay sender contact information for a new message from the trustedand authoritative source. In an example of FIG. 1, the computing device100 can form a secure network connection with the contact informationsystem 150 over the Internet, using a network port as described below,in order to retrieve and display the contact information in context ofan incoming call or new message.

In an example of FIG. 1, the computing device 100 includes a cellularport 102, a wireless network port 104, a display 106, a speaker 119, anda processor 110. Additionally, the computing device 100 can include oneor more kinds of memory resources, such as provided by operating systemmemory 116 (e.g., Read Only Memory or “ROM”)) and application memory 118(e.g., Random Access Memory or “RAM”). The cellular port 102 can enablecellular voice communications, while the wireless network port 104enables, for example, high-bandwidth wireless (or network) communicationsuitable for Internet protocol (“IP”) data communication applicationsand resources (e.g., an 802.11 protocol, or “Wi-Fi”). Still further, thewireless network port 104 can also be used for voice communicationsusing a wireless medium such as Wi-Fi. For example, some serviceproviders can enable voice or data communications through non-cellularwireless communication ports (e.g., cellular service providers canenable voice calls to be received or made through a Wi-Fi connection).In some implementations, the selection of the particular communicationport can be made dependent on the factors such as the device location,the device's connection quality or strength through the respectivecommunication ports, user preference, device software or hardwareresources, or other considerations. In other variations, the cellularport 102 can enable both voice and data communications for purpose ofimplementing an example of system 10. Additionally, in some variations,the computing device 100 can utilize a telephony port, such as awireline interface for the communication network 11, rather than, forexample, cellular port 102 to receive and transmit calls. Thus, inimplementation, the computing device 100 can have more or fewercommunication ports, with each communication being enabled for voice,data or voice and data. Moreover, one or more additional communicationports can be included with the computing device 100 for enablingcommunications using alternative wireless or wireline communicationmediums.

In an example of FIG. 1, the computing device 100 may executeinstructions 117 for operating a phone application 112, with a networkretrieval component 114 being integrated or functionally linked to thephone application 112. As an addition or alternative, the computingdevice 100 executes the instructions 117 for operating a messagingapplication (SMS application 113), with the network retrieval component114 being integrated or functionally linked to the messagingapplication. In either implementation, variations implement the networkretrieval component 114 as an operating system level component for thephone application 112 and/or the SMS application 113.

In some examples, the operating system memory 116 may maintain devicecredential 118, in the form of an encrypted datum that identifies and/orvalidates the computing device 100 and/or the user of the computingdevice 100. In some implementations, the network retrieval component 114can be an integrated functional element or aspect of the phoneapplication 112 or the SMS/MMS application 113. In this regard, thephone application 112, SMS/MMS application 113, and/or the networkretrieval component 114 are implemented as operating level functionalityon the computing device 100. In variations, the application memory

In operation, the computing device 100 receives an incomingcommunication from a contact device 15. The incoming communication maybe an incoming call connect 101A or a new message 101B. The incomingcommunication 101 may be received on the computing device 100 via, forexample, the communication network 11. In response to receiving theincoming communication 101, the computing device 100 determines acommunication identifier for the incoming communication 101 (e.g., phonenumber), and then uses the communication identifier to perform aseparate network retrieval from the independent network authority 150 toobtain contact information 105 for the contact (e.g., caller or sender)of the incoming communication 101. In some examples, the incomingcommunication 101 is a call connect 101A, and the contact information105 is obtained and displayed to augment or replace, for example,conventional caller identifier information. In variations, the incomingcommunication 101 is a new message 101B, and the contact information isobtained and displayed as part of, for example, the message header oridentifier when the message is listed in a folder (e.g., inbox) oropened for viewing. As described in greater detail, the contactinformation 105 may include rich content (e.g., logos and images, text,textual information about the contact, etc.) that is created and/orconfigured by the contact. In this way, the network authority 150enables entities who are owners or holders of communication identifiersto specify contact information 105 that is displayed on their behalfwhen those entities perform a corresponding communication activity(e.g., make a phone call, send a message). Furthermore, the rendering ofthe contact information 105 on the computing device 100 providesconfirmation to the receiver regarding the identity of the contact whois responsible for the incoming communication 101.

In one implementation, the cellular port 102 and/or processor 110 caninclude or operate with caller logic 108 and/or messaging logic 109. Thecaller logic 108 may be implemented to detect, process and receive therespective incoming call 101A, and further to determine thecommunication identifier 103 of the caller or sender (e.g., phonenumber). The messaging logic 109 may be implemented to similarly receiveand process incoming messages (e.g., SMS messages). While an example ofFIG. 1 depicts the incoming communication 101 as being received on thecellular port 102, in variations, the incoming communication can bereceived on an alternative communication port, such as the wirelessnetwork port 104 (e.g., Wi-Fi port or wireline port). Thus, as anaddition or variation, the caller logic 108 can be provided on thewireless network port 104 (or other communication port) to receive theincoming call 101A, and to determine information from the incoming call,such as caller communication identifier 103. Additionally, somevariations provide for the messaging logic 109 that resides on cellularport 102 or wireless network port 104 (or other communication port) toreceive a new message 101B (e.g., SMS), and to determine informationfrom the new message, such as sender communication identifier 103.

In response to receiving the incoming communication 101, the processor110 sends an outgoing retrieval communication 107 to contact informationsystem 150. The outgoing retrieval communication 107 may include thecommunication identifier 103 of the incoming communication 101, as wellas credential information 119 associated with the computing device 100.The credential information 119 can be based or derived from thecredential 118 that is stored on the computing device 100. In someexamples, the credential 118 can include a token or key which isdedicated for use with the contact information system 150. In responseto transmitting the outgoing retrieval communication 107, the computingdevice 100 may receive the contact information 105 from the contactinformation system 150. The contact information is provided to thecomputing device 100 in a form that is renderable on the platform of thecomputing device 100, and for an appropriate context (e.g., call screenor with messaging item). In the case of an incoming call, the contactinformation 105 can be rendered while the incoming call 101A is beingreceived, but before the incoming call is connected (e.g., before theuser answers the call).

In an implementation in which the contact information 105 is retrievedfor the new message 101B, the contact information 105 may be retrievedand displayed simultaneously with, for example, a message notificationgenerated on the computing device 105. In such examples, the messagingapplication 113 of the computing device 100 may operate to suppress themessage notification until the contact information 105 is retrieved, oruntil a retrieval operation is performed. In some examples, a backgroundprocess is triggered by the messaging logic 109 to manage retrieval andinclusion of contact information with the header or other portion of thenewly received message. In variations, the messaging application 113 cantrigger the network retrieval asynchronously, or independently of acorresponding message notification, and then render a message header ofthe new message with the contact information 105 when the messagingapplication is operated to display new messages.

In an example of FIG. 1, the outgoing retrieval communication 107 iscommunicated to contact information system 150 using the wirelessnetwork port 104. In some operational environments, the configurationprovides a benefit of the outgoing retrieval communication 107 beingtransmitted using a high-bandwidth communication medium, so as tominimize latency in the receipt of the contact information 105. In someimplementations (e.g., when Wi-Fi is not available), the cellular port102 can also be used to communicate the retrieval communication 107 andto receive the contact information 105. Still further, alternativeconfigurations can be implemented such that the cellular port 102 isused to transmit the outgoing retrieval communication 107 when theincoming communication 101 is received on either the cellular port 102or wireless network port 104.

According to some examples, the contact information system 150 caninclude functionality such as shown by device interface 152 and contactinformation database 154. The device interface 152 can process requestscorresponding to network retrieval operations performed on individualcomputing devices. The contact information database 154 can correspondto, for example, a database structure which maps communicationidentifiers (e.g., phone numbers, account messaging identifiers) tocontact information. As described with some examples, the contactinformation database 154 can obtain caller or sender contact informationfrom a variety of sources. The device interface 152 can receive theretrieval communication 107 and identify the communication identifier103 as part of a query 155. The caller query 155 can be handled by aquery processing component 158, which references the communicationidentifier 103 with corresponding caller information 105 that isprovided in the contact information database 154.

In implementations which display caller contact information, computingdevice 100 can receive the contact information 105 from the contactinformation system 150 when the incoming call 101A is received. Thecontact information 105 can be rendered while, for example, an incomingcall 101A is pending on the computing device 100. In someimplementations, caller contact information 105 is rendered on thecomputing device 100 before the call is shown to the user, oralternatively, before the call is answered. In the latter implementationexample, the incoming call 101A can be displayed briefly without callerinformation, then displayed with caller information when received. Insuch examples, the incoming call 101A can be received and held aspending through the phone application 112 while the network retrievalcomponent 114 retrieves the caller contact information 105. In somevariations, the phone application 112 can suppress user-interfacefeatures, such as those used to display caller information 105, untilthe caller information is received from the contact information system150. The processor 110 receives the caller information 105 via thewireless network port 104, and then renders caller content 115 based onthe retrieved caller contact information 105. The caller content 115 canbe based on or derived from the caller contact information 105. Thecaller content 115 can be rendered as text or media using the displaycomponent 106. In variations, the caller content 115 can be generated inwhole or in part as audio output.

In some variations, the phone application 112 includes logic to controlwhen the network retrieval component 114 performs the retrievaloperations. In one implementation, the processor 110 performs aretrieval process in which an initial determination is made as towhether the incoming communication 101 is associated with a contactrecord on the computing device 100. In one implementation, the phoneapplication 112 or messaging application 113 can initiate a localretrieval 121 query from the application memory resource 118 when theincoming call 101 is received. In one implementation, the localretrieval query 121 can check locally stored application data, such ascall logs or contact records, for contact information 123 that matchesthe communication identifier (e.g., phone number). In a variation, alocal retrieval query 121 can be communicated to a connected resource ofthe computing device, such as another connected device. If, for example,the local retrieval query 121 fails to generate a result, the phoneapplication 112 (or other operating system level logic) can trigger thenetwork retrieval component 114 to query the contact information system150.

In some variations, the network retrieval component 114 initiatestransmission of the retrieval communication 107 concurrently withperformance of the local retrieval 121. Thus, the computing device 100may receive the contact information 105 with the contact information 123from a locally stored contact. In such implementations, the phoneapplication 112 can implement a prioritization or rule-based process tosuppress information from one source (e.g., caller information 105) overinformation from another source, or to display both sets of information(e.g., caller information and contact information 123) together. Thus,the contact content 115 can be based on both the contact information 105and the contact information 123. Thus, in some variations, the outgoingretrieval communication 107 can be transmitted regardless of whether acontact record exists with the resources of the computing device 100.

In such an example, the rendering of the contact information 105 ascontact content 115 can be determined or based at least in part onwhether the computing device 100 has contact information associated withthe communication identifier 103.

Caller Information Services

In one example, the contact information system 150 can include, oroperate in connection with, an aggregation component 162. Theaggregation component 162 can represent one or more aggregationprocesses which access various databases and resources for contactinformation in order to aggregate caller information (e.g., phone numberand caller identifier). In this way, the aggregated caller informationcan originate from sources, such as governmental registries and/orcommercial corporate databases (e.g., such as provided by DUN &BRADSTREET or LINKEDIN). Accordingly, in some examples, the aggregationcomponent 162 can be implemented using source-specific connectors, incombination with a set of database retrieval queries which retrievecontact information. The aggregation component 162 can also determine ifcaller information already exists for when caller information isretrieved on an ongoing basis for phone numbers and entities. If theaggregation component 162 determines that contact information for aphone number exists, the aggregation component 162 can determine toupdate or augment the existing caller information using predeterminedlogic. For example, the predetermined logic can prioritize or sortcaller information based on associated attributes or parameters of theentity associated with the corresponding phone number.

As an addition or alternative, the contact information system 150 caninclude a contact party interface 156 which enables a calling ormessaging party user (e.g., representative or agent of a calling party)to provide various inputs 151, including content input to specifycontact content 155. For example, the contact party interface 156 cancorrespond to a manual or programmatic interface which enables a contactentity (e.g., corporate entities, organizations, or person) to create,configure, modify or augment information about the entity for display ona receiving device at the time the contacting entity initiates a phonecall or sends a message. The contact party interface 156 can enable acalling party to create new information elements for their own contactinformation, as well as specify design elements of the callerinformation (e.g., appearance, logo, formatting, etc.). In someexamples, the information provided through the contact party interface156 can be validated by manual or programmatic resources of theauthoritative entity. Among other types of information, the contactparty interface 156 can enable a contacting party to specify whatinformation (e.g., type, kind, etc.) is displayed to a receiving partywhen the contacting party initiates a phone call, as well as theappearance such information is to have on the receiving device. Asanother example, the contact party interface 156 can enable thecontacting party to specify content elements, such as logo images, fordisplay in connection with a transmitted message (e.g., SMS message).The specified contact element can be included with, for example, amessage header of an outgoing message to the end user device, so thatthe contact element is visible as part of a user's message inbox orfolder.

In other examples, the calling party interface 156 can receivepreferential settings 157 which can define a condition by which one ormore contact-specified content elements are to be displayed inconnection with an initiated call or outgoing message of that contact.For example, a contact may correspond to an individual, who can specifya preferential setting 157 that corresponds to a time setting (e.g.,time of day and/or a day of the week). In some implementations, thepreferential setting 157 may specify durations of time (e.g., weekdays9:00 am-6:00 pm) during which select contact-specified content is to beused for calls initiated by the contact. Among other benefits, suchimplementations enable individuals to have dual-purpose mobile devices,such as for work/business and personal. When the user makes a callwithin a duration specified by the user's preferential setting 157,contact information system 150 may retrieve contact content for thecaller that is for the business that employs the caller, while a calloutside of the specified setting may result in contact informationsystem 150 retrieving content that identifies the individual making thecall.

Still further, in some examples, contact information system 150 mayinclude analytic logic 170 to monitor usage of communication identifiersby callers or senders. For example, if an extraordinary number ofretrieval requests are specified for a particular phone number by apopulation of device users within a given time frame (e.g., an hour or aday), the analytic logic 170 may detect the occurrence and proactivelyflag or indicate the communication identifier as being associated with asolicitation service. In subsequent retrieval requests from thepopulation of users, contact information system 150 returns contactinformation which includes, or otherwise identifiers the caller orsender as a likely solicitor. In this way, contact information system150 can proactively identify likely solicitors to computing devices 100of a population in connection with unwanted phone calls or messages. Theusers of the computing devices may further employ filters to, forexample, preclude receipt or handling of incoming communications fromthe the contacts who are deemed to be solicitors.

Device Functionality for Use with Caller Information Service

In some examples, the processor 110 executes the instructions 117 togenerate a set of user interface features when the caller informationcontent 115 is rendered. The user interface features can generateprompts for user input when the caller information content 115 isrendered. When user input is received in connection with a given userinterface feature, the processor 110 may be triggered to perform a setof operations which utilize the caller information 105. By way ofexample, the set of operations can include (i) storing informationprovided from the caller information 105 as part of a local contactrecord on the computing device 100, using the application memoryresources 118, and/or (ii) generating a network communication thatreports information about the incoming call 101 to the authoritativeentity or other network service.

According to one implementation, the processor 110 can store the callercontact information 105 as a contact record 127 using, for example, theapplication memory resources 118. Alternatively, the caller information105 can be used to augment an existing contact record 127. For example,the caller contact information 105 can include information which may notexist in the contact record of the user of the computing device 100.

Still further, a user interface feature can be generated through thephone application 112 to generate a network communication 131 whichreports information about the incoming call 101A. The networkcommunication 131 can, for example, be signaled in response to userinput when the incoming call 101A is unsolicited or not authentic. Forexample, when the caller information content 115 is rendered on thedisplay component 106 of the computing device 100, a user interfacefeature (e.g., see network notification feature 336, FIG. 3C) can bedisplayed to enable the user to mark a complaint with the incoming call.For example, the call may be an unwanted solicitation, or from a callerwho is masking their true origin. The user can interact with a networknotification feature 336 (see FIG. 3A through FIG. 3C) to signal theircomplaint. The processor 110 can then generate the network communication131 to a corresponding network location, such as provided by the contactinformation system 150. In some variations, the user may be prompted toenter information regarding the nature of the communication, such as thebasis of the user's complaint.

In this way, the network communication 131 can be generated by the useras a mechanism to report a complaint. In one example, the networkcommunication 131 can be communicated via the wireless network port 104to the contact information system 150. The network communication 131 canbe recorded in association with the caller information 105 for theincoming call 101.

In some examples, the contact information system 150 can recordinstances when network communication 131 are generated for a particularphone number, or alternatively for a particular entity which may managemultiple phone numbers. The contact information system 150 can tabulateinstances when the network communications 131 are generated fromdifferent devices. When, for example, the number of communications 131exceed a threshold, the associated phone number which generated thecommunications (e.g., complaints) from the various devices can beflagged as being problematic (e.g., unsolicited caller).

Caller Interface Examples

FIG. 3A through FIG. 3C illustrate variations of a caller interface 300,according to one or more examples. In examples shown, the callerinterface 300 is shown to display different types of caller content 115when a corresponding incoming call is received. The caller interface 300can be triggered for display on the display component 106 when anincoming call 101A is initially received.

With reference to FIG. 1 and FIG. 3A through FIG. 3C, the callerinterface 300 can be used to display caller contact content 115, whichcan include, for example, (i) alternative phone numbers 302 which areceiving party can use to contact the calling party; (ii) messagingidentifiers 304 for use by a receiving party to message the callingparty, (iii) a website 306 or network location where additionalinformation about the calling party is made available, (iv) a logo 308,including an image or other media content for rendering on the computingdevice of the receiving party. In some variations, the caller interface300 can include a set of user interface features 312, 314 which areactionable with user input in order to cause the processor 110 toperform a predetermined set of actions using the caller contactinformation 105.

As described with other examples, the caller interface 300 can alsoinclude actionable user interface features for enabling the computingdevice 100 to perform an action using or based on the displayed callerinformation 105. In examples of FIG. 3A through FIG. 3C, a contactfeature 332 can be provided which the user can interact with in order tostore the caller contact information 105 with or as part of a newcontact record. In this way, the user can, for example, storealternative phone numbers, message identifiers, and websites of acalling party. Another example of an actionable feature 334 is a localcaller block function, which the user can use to block future incomingcalls from the same phone. The actionable feature 334 may also be usedin examples in which contact information system 150 proactivelyindicates an incoming call is a solicitation.

In another variation, the caller interface 300 can include the networknotification feature 336 which the user can interact with in order togenerate, for example, the network communication 131. As described withother examples, the network notification feature 336 can provide amechanisms by which the caller can signal a complaint about the incomingcaller. When the user interacts with the notification feature 336, oneexample provides that the network communication 131 is sent to thecontact information system 150 (e.g., via the cellular port 102 or thewireless network port 104) that identifies the communication identifier103, as well as a value or data element provided through thenotification feature 336 which indicates the user is complaining aboutthe caller. The contact information system 150 can record informationabout the event, such as the occurrence of the event, the time the eventoccurred, and/or the user or computing device which made the complaint.

As described with other examples, the contact information system 150 caninclude logic, such as rule based logic, which tallies or aggregatescomplaints for individual callers, such as by phone number or calleridentifier of the caller. The contact information system 150 canimplement rules, for example, which provide that if a particular caller(e.g., organization responsible for a particular number) receives toomany complaints in total, or if a caller receives too many complaints ina given duration of time (e.g., 1 month), remedial action can be takensuch as the caller being warned or fined.

In variations, the actionable feature 334 can serve dual roles in whichthe user can block the caller from calling the user's computing device,as well as providing a mechanism in which the user's interaction withthe feature results in the network communication 131 being communicatedto the contact information system 150. The contact information system150 can then implement logic to determine when/if remedial actions areneeded against the caller.

Message Interface Examples

FIG. 4 illustrates an example message interface for use with a computingdevice, according to one or more examples. In an example shown, amessage interface 400 is shown to display sender contact information, inthe form of content elements 410 which may be specified or selected bythe user.

In some examples, the message interface 400 may be implemented for amessaging application which utilize phone numbers as the primarycommunication identifier. In numerous examples, this is described as anSMS messaging application. In variations, the messaging interface may beprovided for proprietary applications, such as iMessage (provided byAPPLE INC.). The computing device 100 may receive a new message from,for example, a business, or an individual associated with a business.The computing device 100 may perform the retrieval for sender contactinformation, as an independent network authority. In some variations,this may be performed when, for example, the messaging application doesnot recognize the phone number used by the sender.

In some implementations, the retrieved sender contact information 105may include a logo and/or text content. In variations, the retrievedsender contact information 105 can include an audio jingle, animatedpicture or other media content item. As with other examples, the contactinformation 105 may be selected by the sender (or business) who controlsor owns the phone number.

In some examples, the computing device 100 includes logic to blend orintegrate the retrieved content element with the contents of the messageas received on the computing device. For example, logos 410, 412 may bereceived from the contact information service 150 independent of therespective incoming message 401, 403. The logos 410, 412 may beassembled or integrated into the respective message 401, 403 when themessage is displayed in list form with other messages (e.g., as part ofan inbox). Thus, the sender can use the contact information system 150to specify logo or other branding content, which is then displayed onthe receiving device, without need for the sender to include the logo orbranding content at time of transmission. In some variations, the sendercontact information 105 (e.g., logo 410, 412) may also be displayed withother context, including when the message is rendered individually,and/or as part of a message notification which informs the user that anew message has arrived.

Methodology

FIG. 2A illustrates an example method for implementing a contactinformation service on a computing device of the user, according to oneor more examples. A method such as described with an example of FIG. 2Acan be implemented using a system such as described with an example ofFIG. 1. Accordingly, reference to elements of FIG. 1 is to illustratesuitable components or elements for performing a step or sub-step beingdescribed.

In an example, the computing device 100 receives an incomingcommunication (e.g., phone call, SMS message) and determines a calleridentifier (e.g., phone number) (210).

The processor 110 can initiate a retrieval process for determining thecaller or sender contact information, using the communication identifier(e.g., phone number) of the incoming communication 101 (220). In oneimplementation, the processor 110 performs a local retrieval operationto determine if contact information exists on the computing device 100which matches the communication identifier (e.g., phone number) of theincoming communication 101 (222). As an addition or alternative, theprocessor 110 performs a network retrieval operation to retrieve thecaller or sender contact information 105 from the contact informationsystem 150 (224). The processor 110 can then render the retrieved calleror sender contact information 105 using the display 106 and/or speaker109 (230).

Other Examples

While numerous examples are described in the context of an end userdevice performing a network retrieval at or near a time when an incomingmessage is received, variations provide that providers of end userdevices may alternatively (or additionally) perform network retrievalsof the content information system 150 when end user devices of thoseproviders receive the incoming calls or messages. For example, a carrier(e.g., for cellular or VOIP telephony) may perform the network retrievalfrom the contact information system 150, for an incoming call directedto a customer device prior to, or concurrently with the incoming callbeing forwarded to the customer device for call handling. In someimplementations, the provider (e.g., carrier) may perform the operationon behalf of (or in place of) the customer device.

In other variations, providers may couple the use of contact informationsystem 150 with other verification services to reduce a number ofinstances in which the carrier/provider networks are used to conductunwanted solicitations and/or fraud. Some providers, for example,utilize verification services to ensure a phone number of a caller isnot spoofed, but legitimate. In some examples, such providers mayfurther use the contact information system 150 to determine if thecaller is a likely solicitor. For example, in one implementation, thecontact information system 150 may be integrated or combined with averification service that returns, to a provider making a retrievalrequest, a communication that verifies the phone number being used isnot spoofed, and confirmation that the phone number is not associatedwith an entity that is known to make solicitations or commit fraudulentactivity. FIG. 2B illustrates an example method for implementing acontact information service on a distributed receiving-end computersystem. A method such as described with an example of FIG. 2B may beimplemented using functional components such as described with FIG. 1,implemented in part or whole on alternative computing environments, asdescribed in more detail by examples provided below.

In an example of FIG. 2B, a receiving end computer system receives anincoming communication, specifying a communication identifier of acontact who initiated the communication (240). The incomingcommunication may correspond to, for example, an incoming phone call ormessage. In some examples, the incoming communication may correspond toa telephony call, initiated by a caller contact and terminated at thereceiving computing system using an IP network (e.g., VOIP call). As anaddition or alternative, the incoming communication may correspond to,for example, an incoming message, initiated by a sender contact. In someexamples, the incoming communication specifies the phone number of thecontact (or of the contact's device).

In one implementation, the receiving-end computer system corresponds toa computing device operated by the end user (e.g., computing device 100)(242). Thus, for example, the receiving-end computer system may beimplemented as described with an example of FIG. 1.

In a variation, the receiving-end computer system includes a providercomputer system and a user computing device (244). Still further, inanother variation, the receiving-end computer system includes multiplecomputing devices operated or controlled by the end user (246).

The receiving-end computer system may use the communication identifierof the incoming communication to perform a retrieval process in order todetermine the caller or sender contact information (250). In someexamples, the receiving-end computer system perform the retrievalprocess using a rendering computing device operated by the user, so thatthe computing device that retrieves the contact information 105 and thenrenders corresponding content is the same (252).

According to another aspect, the receiving-end computer system performsthe retrieval process to obtain contact information 105 from the contactinformation service 154 using a provider-operated computing system, andthe contact information is then forwarded to the end user computingdevice for rendering (254). For example, the receiving-end computersystem may include a carrier server component that implements theretrieval process as part of a verification process, then forwards theincoming communication to the computing device (e.g., cellular orwireless telephony device) of the end user. As another example, thereceiving-end computer system may be operated by a VOIP provider whoperforms the retrieval process to obtain the contact information 105from the contact information system 154, before or at the time theincoming communication (e.g., phone call) is received. The VOIP providermay then forward the incoming call to a corresponding end user devicefor handling VOIP calls. In some examples, a first device (e.g., set-topbox) receives the incoming communication along with the contactinformation 105 from the provider component, and then distributes thecontact information for rendering on a first device (e.g., television)and a second device (e.g., VOIP phone).

Still further, the receiving-end computer system may include multiplecomputing devices which are operated by the user, with a first computingdevice performing the retrieval process to obtain the contactinformation 105 from the contact information system 154, and a seconddevice rendering content from the retrieved contact information (256).For example, a cable user may operate a set-top box that automaticallyperforms the network retrieval process to obtain the sender or callcontact information whenever an incoming communication is receivedthrough that device. In the user's computing environment, anothercomputing device (e.g., television) may be used to display the contactinformation of the caller or sender. Still further, a third device(e.g., dedicated VOIP phone) may be used to receive the communication.

Hardware Diagram

FIG. 5 is a block diagram that illustrates a computer system upon whichexamples described herein may be implemented. A computer system 500 canbe implemented on, for example, a server or combination of servers. Forexample, the computer system 500 may implement contact informationsystem 150, as described in an example of FIG. 1.

In one implementation, the computer system 500 includes one or moreprocessors 510, memory 520 (e.g., a read-only memory (ROM), a storagedevice, RAM) and a communication interface 550. The computer system 500includes at least one processor 510 for processing information stored inthe memory 520. The memory 520 also may be used for storing temporaryvariables or other intermediate information during execution ofinstructions to be executed by the processor 510. In some examples, thememory 520 stores, for example, the contact database 154, or retrievedportions of the contact database from which further processing may beperformed. The memory may also store contact information systeminstructions 522 for implementing contact information system 150, asshown with some examples of FIG. 1.

The communication interface 550 enables the computer system 500 tocommunicate with end user devices (e.g., smart phones, cable boxes,personal computers) over one or more networks 680 (e.g., cellularnetwork. PSTN, IP network) through use of the network link (wireless orwired). Using the network link, the computer system 500 can communicatewith one or more computing devices, as well as computer systems ofproviders (e.g., cellular carriers). The processor 510 is configuredwith software and/or other logic, shown as caller information systeminstructions, to perform one or more processes, steps and otherfunctions described with caller information service 150 of FIG. 1.

Some examples described herein are related to the use of the computersystem 500 for implementing the techniques described herein. Accordingto one example, those techniques are performed by the computer system500 in response to the processor 510 executing one or more sequences ofone or more instructions contained in the memory 520. Execution of thesequences of instructions contained in the memory 520 causes theprocessor 510 to perform the process steps described in connection withcontact information system 150. In alternative implementations,hard-wired circuitry may be used in place of or in combination withsoftware instructions to implement examples described herein. Thus, theexamples described are not limited to any specific combination ofhardware circuitry and software.

Although illustrative aspects have been described in detail herein withreference to the accompanying drawings, variations to specific examplesand details are encompassed by this disclosure. It is intended that thescope of examples described herein be defined by claims and theirequivalents. Furthermore, it is contemplated that a particular featuredescribed, either individually or as part of an embodiment, can becombined with other individually described features, or parts of otheraspects. Thus, absence of describing combinations should not precludethe inventor(s) from claiming rights to such combinations.

What is claimed is:
 1. A method for operating a computing device, the method comprising: (a) determining a communication identifier of an incoming communication; (b) initiating a retrieval process to retrieve information associated with the communication identifier from a predetermined network location of a network authority; and (c) rendering the retrieved information using the computing device.
 2. The method of claim 1, wherein (a) includes determining a phone number of an incoming call, Short Message Service (SMS) message or Multimedia Message Service message (MMS).
 3. The method of claim 1, wherein (a) through (c) are performed by at least one of a phone application, voice network service or messaging application.
 4. The method of claim 1, wherein at least one of (a) through (c) is performed by an operating level component of the computing device.
 5. The method of claim 1, wherein (a) through (c) are performed on the computing device in response to an incoming call, and while the incoming call is pending on the computing device before being answered.
 6. The method of claim 1, wherein (c) includes displaying branding content of an entity that is authenticated by the network authority as being associated with a phone number of an incoming call or message.
 7. The method of claim 1, wherein (b) includes making a determination as to whether locally stored information is associated with the identifier, and then performing a network retrieval based on the determination.
 8. The method of claim 7, wherein (b) is performed when the determination is that no locally stored information is associated with the identifier.
 9. The method of claim 1, wherein initiating the retrieval process includes making a secure connection to the network location.
 10. The method of claim 1, wherein the incoming communication is communicated to the computing device over at least one of a Public Switch Telephone Network (“PSTN”), cellular network, or Internet Protocol network.
 11. The method of claim 1, further comprising: displaying, in connection with an incoming call or message, one or more features to perform a corresponding one or more alternative actions other than answering the incoming call.
 12. The method of claim 1, further comprising: displaying a feature to enable a user to provide input about an incoming call or message to the network authority.
 13. The method of claim 1, wherein (c) includes displaying the retrieved information as part of a header or message body of an incoming message. 